VASP.5.4.4编译与安装

您所在的位置:网站首页 编译器 库 VASP.5.4.4编译与安装

VASP.5.4.4编译与安装

2023-04-10 10:50| 来源: 网络整理| 查看: 265

本文所用的Linux发行版本为Debian!

一、安装Intel的编译器与库1. 下载Intel Base与HPC

网上的大部分教程安装依赖库和编译器是用Intel Parallel Studio XE,但是这个软件是付费的,学生版License也停止申请了,资源也不好找。所以本文推荐使用免费的Intel® oneAPI Base ToolkitIntel® oneAPI HPC Toolkit来安装所需要的依赖库和编译器。链接在下方:

操作系统选择Linux,发行版本选择脱机。下方会出现wget下载链接。下载速度比较慢,这里贴上百度网盘地址

https://pan.baidu.com/s/1Mj1fV_2KZvNoxktVG-jLrA?pwd=1234。

2. 安装Intel Base与HPC

下载完成之后要修改一下权限,不然会有权限问题,使用下面的命令:

$ chmod +x .sh

接下来就是安装了,命令如下:

$ sudo sh ./.sh

HPC工具套件体积比较小,可以全部安装。Base套件体积比较大,可以选择安装,

Base套件建议安装红框中的

Base Toolkit HPC Toolkit 安装好之后,安装目录结构如下,例如 mkl 目录:

opt/intel/oneapi/mkl/ |-- 2021.2.0 `-- latest -> 2021.2.0

其中 2021.2.0 文件夹中内容是运行所需的,本文后面都会使用 代指,其他目录如 mpi 等等都是类似结构。

二、编译环境配置1. oneAPI环境配置

Base Toolkit HPC Toolkit 安装好之后就是环境配置,这一步非常关键。先去安装目录,默认在如下

/opt/intel/oneapi

查看一下有没有一个 setvars.sh 的文件,如果有,直接运行如下命令(替换 install-dir 为安装目录):

$ source /setvars.sh

运行结束后可以输入以下命令验证是否正确加载环境变量

$ ifort -v

但是这样只是临时加载,可以修改 .bashrc 文件这样就不用每次开启终端都要运行 setvars.sh,直接在 .bashrc 文件末尾添加:

source /setvars.sh

然后运行

$ source ~/.bashrc

重启终端,这样每次启动终端都会加载intel相关的环境。

如果你看不到 setvars.sh 文件,请看第五节。

2. 编译libfftw3xf_intel.a

进入到 mkl 目录的 fftw3xf 子目录中,根据个人安装位置做更改

/mkl//interfaces/fftw3xf

运行如下命令编译:

$ make libintel64

如果成功的话就会在当前目录下生成文件 libfftw3xf_intel.a

三、编译VASP1 . 准备工作

这里有一个巨大的坑。在开始编译之前,先运行如下命令来检查你系统是否有 rsync 命令,

$ rsync -V

如果输出 command not found 则需要如下命令安装 rsync:

$ apt-get install rsync

如果没问题那就可以继续了。

首先解压 vasp.5.4.4.tar.gz

$ tar -zxvf vasp.5.4.4.tar.gz

进入到 vasp.5.4.4 文件夹

$ cd vasp.5.4.42. 修改makefile.include文件

先贴上 intel 官方出的 vasp 编译教程

在 vasp 文件夹下的子目录中,有几个 makefile.include 的模版,运行下面的命令复制出后缀为 linux_intel 的并重命名为 makefile.include.

$ cp arch/makefile.include.linux_intel ./makefile.include

首先运行如下命令,检查 MKLROOT 路径是否正确

$ echo $MKLROOT

如果输出为 mkl 的安装目录那么可以继续往下。如果输出错误,需要手动修改 .bashrc 文件末尾添加路径:

export MKLROOT=/mkl/

然后运行如下命令重启终端

$ source ~/.bashrc

打开 vasp 目录下的 makefile.include 文件,一些为修改的位置

1 OBJECTS

OBJECTS = fftmpiw.o fftmpi_map.o fft3dlib.o fftw3d.o /mkl//interfaces/fftw3xf/libfftw3xf_intel.a

添加之前编译好的 libfftw3xf_intel.a 文件位置;

2 FFLAGS

FFLAGS = -assume byterecl -w -xHOST

添加参数 -w -xHOST;

3 FCL

FCL = mpiifort -qmkl=sequential

修改为 -qmkl=sequential;

4 INCS

INCS =-I$(MKLROOT)/include/fftw -I/mpi//include

INCS 为 include 参数,需要把 mpi 库的 include 文件夹添加,这是一个坑要注意。

5 末尾添加

# For the parser library CXX_PARS = icpc LIBS += parser LLIBS += -Lparser -lparser -lstdc++

修改完成然后保存就可以进行编译。

3. 编译

在 vasp 目录下运行

$ make

默认会编译 std ncl gam 三个版本的可执行文件,也可单独执行

$ make std

单独编译 std 版,其他两个也是类似。

等一段时间就会在 bin目录生成 vasp 可执行文件。

四、添加VASP到系统路径1. 添加环境变量

根据自己喜好放置 vasp 可执行文件,这里推荐目录

/usr/bin/vasp

在系统目录 /usr/bin 下创建文件夹 vasp,进入文件夹后执行复制命令

cp /bin/vasp_std /usr/bin/vasp/vasp_std

执行三次,复制三个版本的可执行文件(记得替换 local-vasp.5.4.4-dir 为自己的 vasp 目录),当然你也可以一次性复制 bin 文件夹。

复制结束后需要添加环境变量,打开 .bashrc 文件,添加复制的 vasp 路径

export PATH=/usr/bin/vasp:$PATH

然后运行如下命令重启终端:

$ source ~/.bashrc

继续在新目录下执行如下命令来确认 MKL 有没有和 VASP 成功链接

$ ldd vasp_std

输出的结果没有 not found 说明成功链接。

2. 测试 VASP

先贴上文件 INCAR、KPOINTS、POSCAR、POTCAR

https://pan.baidu.com/s/1EkjuPM3c1Pj0IoqNIJ8vOA?pwd=1234

将上面的文件放到一个文件夹,位置随便,进入到该文件夹,执行如下命令,其中数字 4 是电脑 CPU 核数。

$ mpirun -np 4 vasp_std

如果没有出错误 VASP 就会开始计算,运行结束会生成很多文件,打开文件 OUTCAR 拖到最后

运行成功的结果

如果成功是如图所示的结果。

五、各种坑1. intel 编译器与库的版本

有的老教程用的是 Intel® Parallel Studio XE,需要许可证,而且资源较少。 推荐使用免费的Intel® oneAPI Base ToolkitIntel® oneAPI HPC Toolkit,还能在线更新。

2. oneAPI 环境配置

当两个套件安装结束后会有一个非常奇怪的问题,那就是会缺少 setvars.sh,导致配置环境变量非常麻烦。有两个解决办法:

(1). 重新运行安装文件,会有出现一个 repair 的选项

修复

等运行完就会在套件安装目录出现 setvars.sh 文件。

(2). 手动配置环境变量

直接在 .bashrc 文件添加如下内容

export PATH=/compiler//linux/bin/intel64:$PATH export PATH=/mpi//bin:$PATH export LD_LIBRARY_PATH=/mkl//lib/intel64:$LD_LIBRARY_PATH

然后执行

$ source ~/.bashrc

在编译的时候其实可能会遇到其他 mpi 或者 mkl 库的缺失,根据缺失的文件可以执行下面的命令

$ find / -name “lost-file-name”

找到文件后可以继续添加路径到 .bashrc 文件中,

export LD_LIBRARY_PATH=:$LD_LIBRARY_PATH3. rsync 命令

这是一个非常巨大的坑,起初我以为是环境配置错误,后来才发现 rsync 是一个命令,建议编译之前先安装

$ sudo apt-get install rsync4. makefile.include文件

这里主要有两个坑

(1). INCS

这里编译的时候会提示 mpi 相关文件缺失,在 makefile.include 文件中添加上 mpi 的 include 文件夹

INCS =-I$(MKLROOT)/include/fftw -I/mpi//include

(2). 添加参数

# For the parser library CXX_PARS = icpc LIBS += parser LLIBS += -Lparser -lparser -lstdc++六、结尾

其实只要 intel 的相关工具安装正确,离 VAPS 编译成功就不远了。有问题搜一搜。

祝各位顺利!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3